package com.nx.simple.producer;

import com.nx.Constant;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

/**
 * 1、producergroup:同一类的Producer的集合
 * 事务消息的时候决定是否回滚 、分布式事务应用
 * 2、producer: 是线程安全的
 * 3、Message 实例
 */
public class OnewayProducer {

    public static void main(String[] args) throws Exception{
        //生产者实例化2.1.1.2.1.1.3
        DefaultMQProducer producer = new DefaultMQProducer("nx-group");
        producer.setNamesrvAddr(Constant.MQ);
        //默认时间是3秒，一般不用设置，如果我们自己搭建的虚拟机，可能网络的原因，我们需要设置一下
        producer.setSendMsgTimeout(10*1000);
        producer.start();
        for (int i = 0; i < 10; i++) {
            Message msg = new Message("nx-user" ,
                    "tianjing" ,
                    "tianjing" + i,
                    ("Hello RocketMQ test i " + i).getBytes(RemotingHelper.DEFAULT_CHARSET)
            );

            //发送消息
            producer.sendOneway(msg);
        }
        //生产者实例不再使用时关闭.
        producer.shutdown();
    }
}
